<?php

namespace app\common\model\Subject;

use think\Model;
use think\Request;

// 软删除的模型
use traits\model\SoftDelete;

class Subject extends Model
{
    //继承软删除
    use SoftDelete;

    //模型对应的是哪张表
    protected $name = "subject";

    //指定一个自动设置的时间字段
    //开启自动写入
    protected $autoWriteTimestamp = true; 

    //设置字段的名字
    protected $createTime = "createtime"; //插入的时候设置的字段名

    //禁止 写入的时间字段
    protected $updateTime = false;

    // 软删除的字段
    protected $deleteTime = 'deletetime';

    //自动过滤掉不存在的字段
    protected $field = true;

    // 追加属性(虚拟字段)
    protected $append = [
        'thumbs_text',
        'likes_text',
        'createtime_text'
    ];

    public function getCreatetimeTextAttr($value, $data)
    {
        $createtime = isset($data['createtime']) ? trim($data['createtime']) : "";

        if(empty($createtime))
        {
            return '暂无上架时间';
        }

        return date("Y-m-d", $createtime);
    }

    public function getLikesTextAttr($value, $data)
    {
        // data 你当前要操作的一整条的数据
        $likes = isset($data['likes']) ? trim($data['likes']) : '';

        if(empty($likes))
        {
            return 0;
        }

        //字符串转换成数组
        $arr = explode(',', $likes);

        return count($arr);
    }

    public function getThumbsTextAttr($value, $data)
    {
        //获取域名部分
        $domain = Request::instance()->domain();
        $domain = trim($domain, '/');

        $thumbs = isset($data['thumbs']) ? $data['thumbs'] : '';

        //如果为空就给一个默认图片地址
        if(empty($thumbs) || !is_file(".".$thumbs))
        {
            $thumbs = "/assets/home/images/video.jpg";
        }
        
        return $domain.$thumbs;
    }

    public function category()
    {
        return $this->belongsTo('app\common\model\Subject\Category', 'cateid', 'id', [], 'LEFT')->setEagerlyType(0);
    }

    //关联查询
    public function teacher()
    {
        //课程：老师 1：1
        // 老师：课程 1：n
        // setEagerlyType(0); JOIN查询
        // setEagerlyType(1); IN查询
        return $this->belongsTo('app\common\model\Teacher\Teacher', 'teacherid', 'id', [], 'LEFT')->setEagerlyType(0);
    }
}
